package com.crawler.html;

import java.io.IOException;
import java.net.MalformedURLException;

import com.crawler.dto.Parameter;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;

public interface WebSite {
    /**
     * 
     * 方法描述：  输入参数信息
     * @author TL  
     * @date 2016年6月19日 下午12:21:25  
     * @param parameter
     * @return
     */
    WebSite setParameter(Parameter parameter);
    /**
     * 
     * 方法描述：  手动输入验证码
     * @author TL  
     * @date 2016年6月19日 下午12:21:58  
     * @return
     * @throws IOException 
     */
    WebSite enterCodeManually() throws IOException;

    /**
     * 
     * 方法描述：  使用第三方解析验证 收费的 识别效率高
     * @author TL  
     * @date 2016年6月19日 下午12:22:35  
     * @return
     * @throws IOException 
     */
    WebSite enterCodeCharge() throws IOException;
    /**
     * 
     * 方法描述：返回结果  
     * @author TL  
     * @date 2016年6月19日 下午12:24:58  
     * @return
     * @throws IOException 
     * @throws MalformedURLException 
     * @throws FailingHttpStatusCodeException 
     */
    Parameter resultsOf() throws FailingHttpStatusCodeException, MalformedURLException, IOException;
    
    /**
     * 方法描述：  关闭
     * @author TL  
     * @date 2016年6月19日 下午3:28:27
     */
    void close();
}
